package com.cskaoyan.day5.deque._04_blockingqueue;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

/**
 * BlockingQueue的示例代码。
 * 一般是生产者和消费者一起使用同一个阻塞队列。生产者往里面放数据，消费者从里面获得数据。
 * 生产者速度快，就会导致数据堆积，生产者这边就会卡住（等待）
 * 消费者速度快，就会导致数据不够，消费者这边会卡住（等待）
 * @author Common-zhou
 * @since 2023-03-02 15:01
 */
public class TestBlockingQueue {
    public static void main(String[] args) throws InterruptedException {
        BlockingQueue<String> blockingQueue = new LinkedBlockingQueue<>(5);

        Producer producer = new Producer(blockingQueue);
        new Thread(producer).start();

        Consumer consumer = new Consumer(blockingQueue);
        new Thread(consumer).start();

    }
}
